<template>
  <div>
    <vxe-grid
      ref='xGrid'
      :scroll-x="{enabled:false}"
      border="border"
      size="mini"
      align="center"
      stripe
      class="mytable-scrollbar"
      resizable
      show-overflow
      highlight-hover-row
      height="800"
      :loading="loading"
      :show-footer="showFooter"
      :footer-method="footerMethod"
      :columns="tableColumn"
      :data="tableData"
      :sort-config="{remote:true,trigger:'cell'}"
      :filter-config="{ remote: true }"
      :toolbar-config="tableToolbar"
      @sort-change="sortChange"
    >

    <!--自定义插槽 toolbar tools 插槽-->
    <template v-slot:toolbar_tools>
      <el-button size="mini" @click="handelDownload">导出<i class="el-icon-download el-icon--right"></i></el-button>
    </template>

    <template v-slot:toolbar_tools2>
      <el-button size="mini" @click="handelDownload2">导出<i class="el-icon-download el-icon--right"></i></el-button>
    </template>

    </vxe-grid>
  </div>
</template>

<script>
// 这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
// import PageHeaderLayout from '@/layouts/PageHeaderLayout'
// import ApeDrawer from '@/components/ApeDrawer'
// import { mapGetters } from 'vuex'

export default {
  name: 'ExGridTable',
  components: {
    //PageHeaderLayout,
  },
  props: {
    /* 加载数据状态 */
    loading: {
      type: Boolean,
      default: false
    },
    /* 表格列定义 */
    tableColumn: {
      type: Array,
      default() {
        return []
      }
    },
    /* 表格数据 */
    tableData: {
      type: Array,
      default() {
        return []
      }
    },
    /* 表底部函数 */
    showFooter: {
      type: Boolean,
      default:false
    },
    footerMethod: {
      type: Function
    },
    /* 表格工具栏 */
    tableToolbar: {
      type: Object,
      default() {
        return {}
      }
    },
  },
  // 定义属性
  data() {
    return {}
  },
  // 计算属性，会监听依赖属性值随之变化
  computed: {},
  // 监控data中的数据变化
  watch: {},
  // 方法集合
  methods: {
    sortChange({column, property, order, sortBy, sortList, $event}) {
      // property：字段名 order：排除规则
      console.log("排序排序排序排序排序排序", property);
      this.$emit('customSortMethodEmit', property, order)
    },
    handelDownload(){
      this.$refs.xGrid.exportData({ type: 'csv' })
    },
    handelDownload2(){
      this.$emit('handelDownloadEmit')
    }

  },
  // 生命周期 - 创建完成（可以访问当前this实例）
  created() {

  },
  // 生命周期 - 挂载完成（可以访问DOM元素）
  mounted() {

  },
  beforeCreate() {
  }, // 生命周期 - 创建之前
  beforeMount() {
  }, // 生命周期 - 挂载之前
  beforeUpdate() {
  }, // 生命周期 - 更新之前
  updated() {
  }, // 生命周期 - 更新之后
  beforeDestroy() {
  }, // 生命周期 - 销毁之前
  destroyed() {
  }, // 生命周期 - 销毁完成
  activated() {
  }, // 如果页面有keep-alive缓存功能，这个函数会触发
}
</script>

<style lang='scss' scoped>
/*滚动条整体部分*/
.mytable-scrollbar ::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

/*滚动条的轨道*/
.mytable-scrollbar ::-webkit-scrollbar-track {
  background-color: #FFFFFF;
}

/*滚动条里面的小方块，能向上向下移动*/
.mytable-scrollbar ::-webkit-scrollbar-thumb {
  background-color: #bfbfbf;
  border-radius: 5px;
  border: 1px solid #F1F1F1;
  box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
}

.mytable-scrollbar ::-webkit-scrollbar-thumb:hover {
  background-color: #A8A8A8;
}

.mytable-scrollbar ::-webkit-scrollbar-thumb:active {
  background-color: #787878;
}

/*边角，即两个滚动条的交汇处*/
.mytable-scrollbar ::-webkit-scrollbar-corner {
  background-color: #FFFFFF;
}
</style>